<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="./include/strm/youtubedataapi_v3_list/style.css" />
    <title>YouTubeAPIv3サンプル | OAuth</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        var apiKey="AIzaSyBlMGuN896gT7QpATSRwnRzzJrv1JDHUGE";    /* 自分のキー */
        var scopes = 'https://www.googleapis.com/auth/plus.me';
        var channelID="cocoism3";
        var playlistID="PL_0KPQ_Gk770rKA-ihNw66oDgqtPPLfww";
        /* Google APIコンソールからクライアントIDを取得（https://code.google.com/apis/console） */
        var OAUTH2_CLIENT_ID = "794518427170.apps.googleusercontent.com";   
        /* 自分のID（https://developers.google.com/youtube/registering_an_application） */
        var OAUTH2_SCOPES = [
            'https://www.googleapis.com/auth/yt-analytics.readonly',
            'https://www.googleapis.com/auth/youtube.readonly'
        ];
        /* GoogleAPIロード後に呼び出される */
        window.onJSClientLoad = function() {
            dbg("onJSClientLoad");
            gapi.auth.init(function() {
                window.setTimeout(checkAuth,1);
            });
        };
        /* OAuth認証チェック */
        function checkAuth() {
            dbg("checkAuth");
            gapi.auth.authorize({
                client_id: OAUTH2_CLIENT_ID,
                scope: OAUTH2_SCOPES,
                immediate: true
            },handleAuthResult);
        }
        /* gapi.auth.authorize()の呼び出し結果を処理 */
        function handleAuthResult(authResult) {
            if (authResult) {
                /* 認証に成功したら認証リンクを隠し、認証したら見れるものを表示 */
                $('.pre-auth').hide();
                $('.post-auth').show();
                /* 処理実行 */
                loadAPIClientInterfaces();
            }else{
                /* 認証に失敗したら認証リンクを表示し、認証しないと見れないものは非表示 */
                $('.post-auth').hide();
                $('.pre-auth').show();
                displayMessage("認証に失敗しました");
                /* ログインリンクを有効化 */
                $( '#login-link' ).click(function() {
                    gapi.auth.authorize({
                        client_id: OAUTH2_CLIENT_ID,
                        scope: OAUTH2_SCOPES,
                        immediate: false
                    }, handleAuthResult);
                });
            }
        }
        /* ページにメッセージを表示する */
        function displayMessage(message) {
            $("#message").text(message).show();
        }
        /* 上記で表示されたメッセージを隠す */
        function hideMessage() {
            $("#message").hide();
        }
        /* APIロード */
        function loadAPIClientInterfaces() {
            dbg("handleAPILoaded");
            gapi.client.setApiKey(apiKey);
            gapi.client.load('youtube', 'v3', angel9pit
        );
        }
        function getUserChannel(){
            dbg("getUserChannel");
            var request = gapi.client.youtube.channels.list({
                mine:true,
                part:'contentDetails'
            });
            request.execute(function(resp) {
                output(resp);
            });
        }
        function output(data){
            dbg(data);
            var s="";
            var pageInfo=data.pageInfo;
            s+="<li>pageInfo:";
                s+="<ul>";
                    s+="<li>resultsPerPage:"+pageInfo.resultsPerPage+"</li>";
                    s+="<li>totalResults:"+pageInfo.totalResults+"</li>";
                s+="</ul>";
            s+="</li>";
            $.each(data.items, function(i, item){
                if(item.id){
                    /* 認証ユーザーのチャンネルID */
                    s+="<li>認証ユーザーのチャンネルID（id）:"+item.id+"</li>";
                }
                if(item.contentDetails){
                    var contentDetails=item.contentDetails;
                    var relatedPlaylists=contentDetails.relatedPlaylists;
            s+="<li>relatedPlaylists:";
                s+="<ul>";
                    /* お気に入りの動画 */
                    s+="<li>お気に入りの動画（favorites）:<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.favorites+"'>"+relatedPlaylists.favorites+"</a></li>";
                    /* 評価の高い動画 */
                    s+="<li>評価の高い動画（likes）:<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.likes+"'>"+relatedPlaylists.likes+"</a></li>";
                    /* アップロード動画 */
                    s+="<li>アップロード動画（uploads）:<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.uploads+"'>"+relatedPlaylists.uploads+"</a></li>";
                s+="<ul>";
            s+="</li>";
                }
            });
            $("#results").append("<h2>channels</h2><ul>"+s+"</ul>");
        }
        var dbg=function(str){
            try{
                if(window.console && console.log){
                    console.log(str);
                }
            }catch(err){
                //alert("error:"+err);
            }
        }
    </script>
    <script src="https://apis.google.com/js/client.js?onload=onJSClientLoad"></script>
</head>
<body id="oauth">
    <div id="login-container" class="pre-auth">
        <p>このサンプルを試すには、YouTubeアカウントへのアクセスが必要です。<br />許可する場合は<a href="#" id="login-link">こちらから認証</a>を行ってください。</p>
    </div>
    <div class="post-auth">
        <div id="results"></div>
    </div>
</body>
</html>
